/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.services;

import static org.junit.Assert.assertNotNull;

import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.unitils.UnitilsJUnit4;

import fr.generali.souscriptiongestion.dommages.tosca.recherchercontrats.services.IRechercherContratsWebService;
import fr.generali.souscriptiongestion.dommages.tosca.recherchercontrats.services.RechercherContratsException;
import fr.generali.souscriptiongestion.dommages.tosca.recherchercontrats.demande.DTODemande;
import fr.generali.souscriptiongestion.dommages.tosca.recherchercontrats.reponse.DTOReponse;

/**
 * @author ebrouillard
 */
public class ContratServiceTestInt extends UnitilsJUnit4 {

    /**
     * Service contrat
     */

    private IRechercherContratsWebService serviceContrat;

    /**
     * Context d'initialisation
     * @throws Exception .
     */
    @Before
    public void setConfiguration() throws Exception {

        XmlBeanFactory context =
                        new XmlBeanFactory(new ClassPathResource(
                                        "fr/generali/mezzo/middle/contrat/applicationContext-ws-contrat.xml"));
        PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer();
        configurer.setLocation(new ClassPathResource("tosca-test.properties"));
        configurer.postProcessBeanFactory(context);

        serviceContrat = (IRechercherContratsWebService ) context.getBean("rechercherContratsWs");
    }

    /**
     * Test service OK
     */
    @Test
    public void testService() {
        assertNotNull(serviceContrat);
    }

    /**
     * Fais une recherche par numéro de contrat
     * 
     * @throws RechercherContratsException .
     */
    @Test
    public void testRechercheNumeroContrat() throws RechercherContratsException {
        assertNotNull(serviceContrat);

        DTODemande criteres = new DTODemande();
        criteres.setIdentifiantContrat("AH007089");

        DTOReponse dossier = serviceContrat.rechercherContrats(criteres);

        assertNotNull(dossier);
    }

//    /**
//     * Fais une recherche par immatriculation
//     * 
//     * @throws RechercherContratsException .
//     */
//    //@Test
//    public void testRechercheImmatriculation() throws RechercherContratsException {
//        assertNotNull(serviceContrat);
//
//        DTODemande criteres = new DTODemande();
//
//        DTOProfilVehiculeAssure profilVehiculeAssure = new DTOProfilVehiculeAssure();
//
//        profilVehiculeAssure.setNumeroImmatriculation("05445");
//
//        criteres.setProfilVehiculeAssure(profilVehiculeAssure);
//
//        DTOReponse dossier = serviceContrat.rechercherContrats(criteres);
//
//        assertNotNull(dossier);
//    }
//
//    /**
//     * Fais une recherche par code portefeuille et code client
//     * 
//     * @throws RechercherContratsException .
//     */
//    //@Test
//    public void testRechercheCodePtfCodeClient() throws RechercherContratsException {
//        assertNotNull(serviceContrat);
//
//        DTODemande criteres = new DTODemande();
//
//        DTOSouscripteur dtoSouscripteur = new DTOSouscripteur();
//
//        dtoSouscripteur.setIdentifiantPersonne("014460720");
//
//        criteres.setSouscripteur(dtoSouscripteur);
//
//        DTOReponse dossier = serviceContrat.rechercherContrats(criteres);
//
//        assertNotNull(dossier);
//    }
//
//    /**
//     * Fais une recherche par nom client
//     * 
//     * @throws RechercherContratsException
//     * @throws RechercherContratsException .
//     */
//    //@Test
//    public void testRechercheNomPrenomClient() throws RechercherContratsException {
//        assertNotNull(serviceContrat);
//
//        DTODemande criteres = new DTODemande();
//
//        DTOSouscripteur dtoSouscripteur = new DTOSouscripteur();
//
//        dtoSouscripteur.setNomCourant("SCHNEIDER");
//        dtoSouscripteur.setPrenom("DENIS");
//
//        criteres.setSouscripteur(dtoSouscripteur);
//
//        DTOReponse dossier = serviceContrat.rechercherContrats(criteres);
//
//        assertNotNull(dossier);
//    }
//
//    /**
//     * Fais une recherche par code portefeuille et nom client
//     * 
//     * @throws RechercherContratsException .
//     */
//    @Test
//    public void testRechercheCodePtfNomClient() throws RechercherContratsException {
//        assertNotNull(serviceContrat);
//
//        DTODemande criteres = new DTODemande();
//
//        DTOSouscripteur dtoSouscripteur = new DTOSouscripteur();
//
//        dtoSouscripteur.setNomCourant("SCHNEIDER");
//
//        List<DTOPortefeuilleContrat> listDTOPortefeuilleContrat = new ArrayList<DTOPortefeuilleContrat>();
//
//        DTOPortefeuilleContrat dtoPortefeuilleContrat = new DTOPortefeuilleContrat();
//
//        dtoPortefeuilleContrat.setIdentifiantApporteurAffaires("612953");
//
//        Collections.addAll(listDTOPortefeuilleContrat, dtoPortefeuilleContrat);
//
//        criteres.setSouscripteur(dtoSouscripteur);
//        criteres.setPortefeuillesContrat(listDTOPortefeuilleContrat);
//
//        DTOReponse dossier = serviceContrat.rechercherContrats(criteres);
//
//        assertNotNull(dossier);
//    }

}
